package com.swhysc.information.service;

import com.alibaba.fastjson.JSONObject;
import com.swhysc.information.entity.InformationDataDirectoryEx;
import com.swhysc.information.vo.InformationDataDirectoryExTree;
import org.springframework.web.multipart.MultipartFile;


import java.util.List;
import java.util.Map;

/**
 * 资讯目录接口
 */
public interface IInformationDataDirExService {

    /**
     * 目录新增
     *
     * @param informationDataDirectory
     * @return InformationDataDirectoryEx
     */
    Boolean create(InformationDataDirectoryEx informationDataDirectory);

    /**
     * 目录树列表接口
     *
     * @param type 类型
     * @param name 目录名称
     * @param code 目录编码
     * @param id   id
     * @param page 页数
     * @param rows 每页的个数
     * @return List
     */
    List<InformationDataDirectoryEx> list(Integer type, String name, String code, String id, Integer page, Integer rows);

    /**
     * 目录树列表接口获取数量
     *
     * @param type 类型
     * @param name 目录名称
     * @param code 目录编码
     * @param id   id
     * @return
     */
    int count(Integer type, String name, String code, String id);

    /**
     * 批量删除
     *
     * @param idsList id集合
     * @param type    类型
     * @return int
     */
    Map deleteBatch(List<String> idsList, Integer type);

    /**
     * 获取树形结构数据
     *
     * @param id   类型 1 数据源 2 目录
     * @param name 名称
     * @return List
     */
    List<InformationDataDirectoryExTree> getTreeById(String id, String name);

    /**
     * 编辑
     *
     * @param infoDataDirectory 数据源、目录实体
     * @return InformationDataDirectoryEx
     */
    Boolean update(InformationDataDirectoryEx infoDataDirectory);

    /**
     * 根据id获取目录数据
     *
     * @param id   主键id
     * @param type 类型
     * @return InformationDataDirectoryEx
     */
    InformationDataDirectoryEx view(String id, Integer type);

    Boolean format();

    List<InformationDataDirectoryEx> allList(Integer type, String name, String code, String id, Integer page, Integer rows);

    int allCount(Integer type, String name, String code, String id);

    List<InformationDataDirectoryExTree> getAllTree(String id);

    JSONObject getTableTree(String tableId);

    Map moveDir(String dirId, String tagDirId, String moveType);

    JSONObject getTableTree2(String tableId);

    List<InformationDataDirectoryEx> getDataSource();

    Object uploadImage(MultipartFile multipartFile);

}
